﻿using System;

namespace ClassDataExport
{
    //Gibt an das die Attribute nur auf Properties angewendet werden dürfen und nur einmal angewendet werden
    //Wichtig ist, wenn es sich um Proeprties handelt auf die das Attribut angwendet werden soll, dann muss
    //über die Reflection erst GetProperties aufgerufen werden und dann kann über jedes Einzelne Attribut 
    //GetCustomAttributes aufgerufen werden.

    /// <summary>
    /// Attributclasse für die Outputporperties. Jedes Attribut was ausgegeben werden soll, muss mit einem Tattribut überschrieben werden.
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
    public class ClassDataExportAttribute : Attribute
    {
        /// <summary>
        /// Ausgabespaltenposition
        /// </summary>
        public int Position { get; set; }

        /// <summary>
        /// Name der Spalte
        /// </summary>
        public string HeaderName { get; set; }

        /// <summary>
        /// String Format z.B. für Datum "dd MMM yyyy"
        /// </summary>
        public string FormatString { get; set; }

        public ClassDataExportAttribute(int position, string headerName)
        {
            Position = position;
            HeaderName = headerName;
            FormatString = string.Empty;
        }
    }
}
